class LightQuoridorState:
    def __init__(self, quoridorState, target_rowW, target_rowB, num_successors, alpha, beta):
        self.curPlayer  = quoridorState.curPlayer
        self.turnsLeft  = quoridorState.turnsLeft
        self.wallsH     = quoridorState.wallsH[:]
        self.wallsV     = quoridorState.wallsV[:]
        self.locationsB = quoridorState.locationsB[:]
        self.locationsW = quoridorState.locationsW[:]
        self.WallsLeftB = quoridorState.WallsLeftB
        self.WallsLeftW = quoridorState.WallsLeftW
        self.target_rowW = target_rowW
        self.target_rowB = target_rowB
        self.num_successors = num_successors
        self.alpha = alpha
        self.beta = beta

    def __cmp__(self, other):
        return cmp((self.curPlayer,self.turnsLeft , self.wallsH, self.wallsV, self.locationsB, self.locationsW, self.target_rowW, self.target_rowB, self.num_successors, self.alpha, self.beta) , (other.curPlayer, other.turnsLeft, other.wallsH, other.wallsV, other.locationsB, other.locationsW,  other.target_rowW, other.target_rowB, other.num_successors, other.alpha, other.beta))

    def __hash__(self):
        return hash((self.curPlayer, self.turnsLeft, str(self.wallsH), str(self.wallsV), str(self.locationsB), str(self.locationsW), self.target_rowW, self.target_rowB, self.num_successors, self.alpha, self.beta))

    def __str__(self):
        return str ((self.curPlayer, self.turnsLeft, str(self.wallsH), str(self.wallsV), str(self.locationsB), str(self.locationsW), self.target_rowW, self.target_rowB, self.num_successors, self.alpha, self.beta))